message(NOTICE "开始构建 libpsl 模块")
# 检查构建目标是否存在
if(TARGET libpsl-${LIBPSL_TAG})
    message(NOTICE "libpsl 模块已存在 libpsl-${LIBPSL_TAG}")
 return()
endif()
existsInstallFiles(
    ${MODULE_STAMP}/libpsl/${LIBPSL_TAG}
    ${MODULE_INSTALL_DIR}/libpsl/${LIBPSL_TAG}
    libpsl-${LIBPSL_TAG})
# 创建
#add_custom_target
# 构建 ncurses 库
ExternalProject_Add(
    libpsl-${LIBPSL_TAG}
    # 目录配置
    PREFIX         ${EXTERNAL_PROJECT_ROOT}                    # ✅ 显式设置 prefix 目录
    SOURCE_DIR     ${MODULE_SRC}/libpsl/${LIBPSL_TAG}          # ✅ 显式设置 source 目录
    BINARY_DIR     ${MODULE_BUILD}/libpsl/${LIBPSL_TAG}        # ✅ 显式设置 build 目录
    INSTALL_DIR    ${MODULE_INSTALL_DIR}/libpsl/${LIBPSL_TAG}  # ✅ 显式设置 install 目录
    STAMP_DIR      ${MODULE_STAMP}/libpsl/${LIBPSL_TAG}        # ✅ 显式设置 stamp 目录
    TMP_DIR        ${MODULE_TMP}/libpsl/${LIBPSL_TAG}          # ✅ 显式设置 tmp 目录

    DOWNLOAD_COMMAND # 下载命令
        COMMAND ${CMAKE_COMMAND}
            -DSOURCE_DIR=<SOURCE_DIR>
            -DGIT_REPOSITORY=${LIBPSL_REPO}
            -DGIT_TAG=${LIBPSL_TAG}
            -P ${__DIR}/utils/git.cmake

    CONFIGURE_COMMAND   # ✅ 正确的 libpsl 配置命令
    COMMAND sh -c "cd <SOURCE_DIR> && ./autogen.sh"
    COMMAND  <SOURCE_DIR>/configure
            --prefix=<INSTALL_DIR>
            --enable-shared=no
            --enable-static=yes
    # 构建命令
    BUILD_COMMAND  make -j${NPROC}


    INSTALL_COMMAND # 安装命令
        COMMAND make install
            # 将安装文件路径保存到 文件去
            COMMAND ${CMAKE_COMMAND}
            -DINSTALL_DIR=<INSTALL_DIR>
            -DCMAKE_PREFIX_PATH=${SYSTEM_PREFIX}
            -P ${__DIR}/utils/write_install_files.cmake
            # 符号链接
    # ✅ 启用所有日志（调试必备）
    LOG_DOWNLOAD      OFF                           # 下载日志
    LOG_CONFIGURE     OFF                            # 配置日志
    LOG_BUILD         OFF                           # 构建日志
    LOG_INSTALL       OFF                           # 安装日志
    LOG_OUTPUT_ON_FAILURE ON                       # 失败时自动输出日志
    # 依赖目标
    DEPENDS install-autoconf
   STEP_TARGETS configure build install # 关键：添加 install 步骤
)

# 依赖目标
add_dependencies(
libpsl-${LIBPSL_TAG}
install-autoconf
)


# 导入 libpsl 模块
add_library(psl::psl STATIC IMPORTED)

# 设置 libpsl 库的属性

set_target_properties(
    psl::psl
    PROPERTIES
    IMPORTED_LOCATION ${MODULE_INSTALL_DIR}/libpsl/${LIBPSL_TAG}/lib/libpsl.a
    INTERFACE_INCLUDE_DIRECTORIES ${MODULE_INSTALL_DIR}/libpsl/${LIBPSL_TAG}/include
)
